package com.ctshk.rpc.order.localfun.dto;

import com.ctshk.common.utils.anno.ColumnMapping;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Description
 * @Author wansi <gaylen15527491065@yeah.net>
 * @Date 2021/6/7
 */
@Data
@ApiModel("订单详情")
public class LocalFunOrderDetail implements Serializable {

    @ApiModelProperty("订单ID")
    private Long id;

    @ApiModelProperty("订单状态")
    private Integer orderStatus;

    @ApiModelProperty(value = "产品id")
    private Long productId;

    @ApiModelProperty(value = "产品城市名称")
    private String productCityName;

    @ApiModelProperty(value = "标题")
    private String productName;

    @ApiModelProperty(value = "订单编码")
    private String orderNumber;

    @ApiModelProperty(value = "订单总额")
    private BigDecimal orderAmount;

    @ApiModelProperty("查询号码")
    private String queryNumber;

    @ApiModelProperty("预定日期")
    private LocalDateTime orderDate;

    @ApiModelProperty("退款状态 1 提交申请 2申请通过 3已退款")
    private Integer refundStatus;

    @ApiModelProperty("提交申请时间")
    private LocalDateTime refundDate;

    @ApiModelProperty("退款申请通过时间")
    private LocalDateTime refundApproveDate;

    @ApiModelProperty("已退款时间")
    private LocalDateTime refundSuccessDate;

    @ApiModelProperty("规格ID1")
    private Long attrId1;

    @ApiModelProperty("套餐：规格名称1")
    private String attrName1;

    @ApiModelProperty("规格ID2")
    private Long attrId2;

    @ApiModelProperty("套餐：规格名称2")
    private String attrName2;

    @ApiModelProperty("单张票价")
    private BigDecimal fee;

    @ApiModelProperty("单张服务费")
    private BigDecimal serviceFee;

    @ApiModelProperty(value = "门票数")
    private Integer ticketNum;

    @ApiModelProperty(value = "优惠券抵扣金额")
    private BigDecimal couponDeduction;

    @ApiModelProperty(value = "使用时间")
    @JsonFormat(timezone = "GMT+8", pattern = "MM月dd日")
    private LocalDateTime useDate;

    @ApiModelProperty(value = "联系人姓")
    private String surname;

    @ApiModelProperty(value = "联系人名")
    private String name;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "称谓")
    private Integer appellation;

    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;

    @ApiModelProperty(value = "联系人手机区号id")
    private Long contactMobileAreaCodeId;

    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "收据抬头")
    private String receiptTitle;

    @ApiModelProperty("订单取消原因")
    private String cancelReason;

    @ApiModelProperty(value = "使用有效期类型(1 固定天数 ,2 指定日期区间)")
    private Integer validType;

    @ApiModelProperty(value = "几日有效")
    private Double validDay;

    @ApiModelProperty(value = "有效期起始")
    private LocalDateTime validDayBegin;

    @ApiModelProperty(value = "有效期截至")
    private LocalDateTime validDayEnd;

    @ApiModelProperty(value = "有效期天数")
    private Integer useDay;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;

    @ApiModelProperty(value = "预定退改须知")
    private String customerNotice;

    @ApiModelProperty(value = "完成订单可获取积分")
    private Integer integral;

    @ApiModelProperty(value = "积分状态 1 正常 2退回")
    private Integer integralStatus;

    @ApiModelProperty(value = "封面图地址")
    private String coverImage;

    @ApiModelProperty(value = "取消政策(1 限时取消,2 不退不改)")
    private Integer cancelPolicy;

    @ApiModelProperty("旅客列表")
    private List<LocalFunTouristInfo> touristInfoList;
}
